Registers On Demand: Integrated register allocation and instruction scheduling

نویسندگان

  • Johan Janssen
  • Henk Corporaal
چکیده

Two of the most important phases of code generation for instruction level parallel processors are register allocation and instruction scheduling. Applying one phase before the other has in both cases its drawbacks. In this paper we present a new method which integrates register allocation and scheduling, called Registers on Demand. We discuss register selection, spilling and the insertion of state preserving code around function calls. We have implemented the new method and results are presented. From the experiments we conclude that our method gives good results in particular for applications for which registers are a critical resource.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Registers On Demand, an integrated region scheduler and register allocator

Two of the most important phases of code generation for instruction level parallel processors are register allocation and instruction scheduling. Applying these two phase separately has major drawbacks like the introduction of false dependences, or a higher register pressure and thus more spill code. In this paper we present a new method which integrates register allocation and region schedulin...

متن کامل

Effective Instruction Scheduling With Limited Registers

Effective global instruction scheduling techniques have become an important component in modern compilers for exposing more instruction-level parallelism (ILP) and exploiting the everincreasing number of parallel function units. Effective register allocation has long been an essential component of a good compiler for reducing memory references. While instruction scheduling and register allocati...

متن کامل

Minimum Register Instruction Scheduling: A New Approach for Dynamic Instruction Issue Processors

Modern superscalar architectures with dynamic scheduling and register renaming capabilities have introduced subtle but important changes into the tradeoffs between compile-time register allocation and instruction scheduling. In particular, it is perhaps not wise to increase the degree of parallelism of the static instruction schedule at the expense of excessive register pressure which may resul...

متن کامل

Optimistic Integrated Instruction Scheduling and Register Allocation

Instruction scheduling and register allocation are two fundamental operations used in an optimizing compiler’s back-end. There is a well-known phase ordering problem between these two stages: Performing either stage first can result in intermediate code that forces the other stage to make suboptimal decisions. We propose an optimistic integrated approach in which scheduling is performed before ...

متن کامل

Fast, frequency-based, integrated register allocation and instruction scheduling

Instruction scheduling and register allocation are two of the most important optimization phases in modern compilers as they have a significant impact on the quality of the generated code. Unfortunately the objectives of these two optimizations are in conflict with one another. The instruction scheduler attempts to exploit ILP and requires many operands to be available in registers. On the othe...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1997